In many computing systems, low-level instruction code, or firmware, is used as an intermediary between the hardware components of the computing system and high-level software executing on the computing system, such as an operating system. The firmware provides a set of software routines that allow high-level software to interact with the hardware components of the computing system using standard calls.
The firmware of a computing system can be debugged by establishing a physical connection between a debugger and the computing system. Debuggers allow information related to the operation of firmware software routines to be observed. The observed information can be used to verify whether the firmware is operating correctly, and whether the firmware is compatible with a given hardware platform.